﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using DocumentManagement.ViewsModels;
using DocumentManagement.Models;
using System.Data;

namespace DocumentManagement.Views
{
    /// <summary>
    /// Interaction logic for CreateDocumentOUT.xaml
    /// </summary>
    public partial class CreateDocumentOUT : Window
    {
        CreateDocumentOUTViewsModel _createDocumentOUTViewsModel;
        public CreateDocumentOUT(CreateSend createSend, QSHCEntities1 entity)
        {
            InitializeComponent();
            _createDocumentOUTViewsModel = this.Resources["createDocumentOUTViewsModel"] as CreateDocumentOUTViewsModel;
            _createDocumentOUTViewsModel.EntityModels = entity;
            _createDocumentOUTViewsModel.MyCreateSend = createSend;

            switch (createSend.Speed)
            {
                case 1:
                    _createDocumentOUTViewsModel.MySpeed1 = true;
                    break;
                case 2:
                    _createDocumentOUTViewsModel.MySpeed2 = true;
                    break;
                case 3:
                    _createDocumentOUTViewsModel.MySpeed3 = true;
                    break;
                case 4:
                    _createDocumentOUTViewsModel.MySpeed4 = true;
                    break;
                default:
                    break;
            }
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //stackPanel55.Visibility = Visibility.Collapsed;
            CreateSendCodeTextBox.Background = Brushes.AliceBlue;
            NameInstitutionTextBox.Background = Brushes.AliceBlue;
            AddressTextBox.Background = Brushes.AliceBlue;
            TitleTextBox.Background = Brushes.AliceBlue;
            ToPositionTextBox.Background = Brushes.AliceBlue;
            ReferenceTextBox.Background = Brushes.AliceBlue;
            NameAttachTextBox.Background = Brushes.AliceBlue;
            PathTextBox.Background = Brushes.AliceBlue;
            Paragraph1TextBox.Background = Brushes.AliceBlue;
            PostScriptTextBox.Background = Brushes.AliceBlue;
            EndorserTextBox.Background = Brushes.AliceBlue;
            PositionTextBox.Background = Brushes.AliceBlue;
            BelongToTextBox.Background = Brushes.AliceBlue;
            TellTextBox.Background = Brushes.AliceBlue;
            FaxTextBox.Background = Brushes.AliceBlue;

            FromDivisionComboBox.SelectedValue = 17;
            FromDivisionComboBox.IsEnabled = false;

            DateTextBlock.Visibility = Visibility.Hidden;
            stackPanel111.Visibility = Visibility.Collapsed;

        }

        private void BrowseButton_Click(object sender, RoutedEventArgs e)
        {
            _createDocumentOUTViewsModel.GetBrowse();
        }

        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            _createDocumentOUTViewsModel.AddToDatagrid();
            NameAttachTextBox.Clear();
            PathTextBox.Clear();
        }

        private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            if (CreateSendCodeTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกเลขที่หนังสือ", "กรอกข้อมูลไม่ครบ");
                CreateSendCodeTextBox.Focus();
                return;
            }

            if (NameInstitutionTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกชื่อหน่วยงานราชการ", "กรอกข้อมูลไม่ครบ");
                NameInstitutionTextBox.Focus();
                return;
            }
            if (AddressTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกที่อยู่หน่วยงาน", "กรอกข้อมูลไม่ครบ");
                AddressTextBox.Focus();
                return;
            }
            if (TitleTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกชื่อเรื่องของหนังสือ", "กรอกข้อมูลไม่ครบ");
                TitleTextBox.Focus();
                return;
            }
            if (ToPositionTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกเรียนหนังสือถึง..", "กรอกข้อมูลไม่ครบ");
                ToPositionTextBox.Focus();
                return;
            }
            //if (ReferenceTextBox.Text == "")
            //{
            //    MessageBox.Show("กรุณากรอกหนังสือที่อ้างถึง", "กรอกข้อมูลไม่ครบ");
            //    ReferenceTextBox.Focus();
            //    return;
            //}
            if (Paragraph1TextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกย่อหน้าแรก", "กรอกข้อมูลไม่ครบ");
                Paragraph1TextBox.Focus();
                return;
            }
            //if (Paragraph3TextBox.Text == "")
            //{
            //    MessageBox.Show("กรุณากรอกย่อหน้าสุดท้าย", "กรอกข้อมูลไม่ครบ");
            //    Paragraph3TextBox.Focus();
            //    return;
            //}
            if (PostScriptTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกคำลงท้ายหนังสือ", "กรอกข้อมูลไม่ครบ");
                PostScriptTextBox.Focus();
                return;
            }
            if (EndorserTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกผุ้ลงนามในหนังสือ", "กรอกข้อมูลไม่ครบ");
                EndorserTextBox.Focus();
                return;
            }

            if (PositionTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกตำแหน่งงาน", "กรอกข้อมูลไม่ครบ");
                PositionTextBox.Focus();
                return;
            }
            if (BelongToTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกหน่วยงานในสังกัด", "กรอกข้อมูลไม่ครบ");
                BelongToTextBox.Focus();
                return;
            }
            if (FromDivisionComboBox.SelectedIndex == 0)
            {
                MessageBox.Show("กรุณาเลือกส่วนงานเจ้าของเรื่อง", "กรอกข้อมูลไม่ครบ");
                return;
            }
            if (TellTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกเบอร์โทรศัพท์ส่วนงาน", "กรอกข้อมูลไม่ครบ");
                TellTextBox.Focus();
                return;
            }
            if (FaxTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกเบอร์โทรสารส่วนงาน", "กรอกข้อมูลไม่ครบ");
                FaxTextBox.Focus();
                return;
            }


            //if (_createDocumentOUTViewsModel.MyCreateSend.EntityState == EntityState.Modified)
            //{
            //    _createDocumentOUTViewsModel.CopyToData();
            //    PageSwitcher.Switch(new ShowItemCreateDocumentUserControl());
            //}
            //if (_createDocumentOUTViewsModel.MyCreateSend.EntityState == EntityState.Added || _createDocumentOUTViewsModel.MyCreateSend.EntityState == EntityState.Detached)
            //{
                _createDocumentOUTViewsModel.SaveToData();
                PageSwitcher.Switch(new ShowItemCreateDocumentUserControl());
            //}
         
        }

        private void PrintPreviewButton_Click(object sender, RoutedEventArgs e)
        {
            if (CreateSendCodeTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกเลขที่หนังสือ", "กรอกข้อมูลไม่ครบ");
                CreateSendCodeTextBox.Focus();
                return;
            }

            if (NameInstitutionTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกชื่อหน่วยงานราชการ", "กรอกข้อมูลไม่ครบ");
                NameInstitutionTextBox.Focus();
                return;
            }
            if (AddressTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกที่อยู่หน่วยงาน", "กรอกข้อมูลไม่ครบ");
                AddressTextBox.Focus();
                return;
            }
            if (TitleTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกชื่อเรื่องของหนังสือ", "กรอกข้อมูลไม่ครบ");
                TitleTextBox.Focus();
                return;
            }
            if (ToPositionTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกเรียนหนังสือถึง..", "กรอกข้อมูลไม่ครบ");
                ToPositionTextBox.Focus();
                return;
            }
            //if (ReferenceTextBox.Text == "")
            //{
            //    MessageBox.Show("กรุณากรอกหนังสือที่อ้างถึง", "กรอกข้อมูลไม่ครบ");
            //    ReferenceTextBox.Focus();
            //    return;
            //}
            if (Paragraph1TextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกย่อหน้าแรก", "กรอกข้อมูลไม่ครบ");
                Paragraph1TextBox.Focus();
                return;
            }
          
            if (PostScriptTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกคำลงท้ายหนังสือ", "กรอกข้อมูลไม่ครบ");
                PostScriptTextBox.Focus();
                return;
            }
            if (EndorserTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกผุ้ลงนามในหนังสือ", "กรอกข้อมูลไม่ครบ");
                EndorserTextBox.Focus();
                return;
            }

            if (PositionTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกตำแหน่งงาน", "กรอกข้อมูลไม่ครบ");
                PositionTextBox.Focus();
                return;
            }
            if (BelongToTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกหน่วยงานในสังกัด", "กรอกข้อมูลไม่ครบ");
                BelongToTextBox.Focus();
                return;
            }
            if (FromDivisionComboBox.SelectedIndex == 0)
            {
                MessageBox.Show("กรุณาเลือกส่วนงานเจ้าของเรื่อง", "กรอกข้อมูลไม่ครบ");
                return;
            }
            if (TellTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกเบอร์โทรศัพท์ส่วนงาน", "กรอกข้อมูลไม่ครบ");
                TellTextBox.Focus();
                return;
            }
            if (FaxTextBox.Text == "")
            {
                MessageBox.Show("กรุณากรอกเบอร์โทรสารส่วนงาน", "กรอกข้อมูลไม่ครบ");
                FaxTextBox.Focus();
                return;
            }

            PrintPreviewDocumentOut printCreateDoc = new PrintPreviewDocumentOut(_createDocumentOUTViewsModel.MyCreateSend, _createDocumentOUTViewsModel.EntityModels);
            printCreateDoc.ShowDialog();

        }

        private void CancelButton_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void deleteCreateDocMenu_Click(object sender, RoutedEventArgs e)
        {
            _createDocumentOUTViewsModel.DeleteFile();
        }

        private void PrintButton_Click(object sender, RoutedEventArgs e)
        {
            NameInstitutionTextBlock.Visibility = Visibility.Hidden;
            AddressTextBlock.Visibility = Visibility.Hidden;
            CreateSendDatePicker.Visibility = Visibility.Collapsed;
         
           
            DateTextBlock.Visibility = Visibility.Visible;

            stackPanel55.Visibility = Visibility.Collapsed;
            Date1TextBlock.Visibility = Visibility.Hidden;

            PostScriptTextBlock.Visibility=Visibility.Hidden;
            EndorserTextBlock.Visibility=Visibility.Hidden;
            PositionTextBlock.Visibility=Visibility.Hidden;
            BelongToTextBlock.Visibility=Visibility.Hidden;

            OwnerTextBlock.Visibility=Visibility.Collapsed;
            FromDivisionComboBox.Visibility = Visibility.Collapsed;

            FromDivisionTextBlock.Text = FromDivisionComboBox.Text;

            CreateSendCodeTextBox.Background = Brushes.White;
            NameInstitutionTextBox.Background = Brushes.White;
            AddressTextBox.Background = Brushes.White;
            TitleTextBox.Background = Brushes.White;
            ToPositionTextBox.Background = Brushes.White;
            ReferenceTextBox.Background = Brushes.White;
            NameAttachTextBox.Background = Brushes.White;
            PathTextBox.Background = Brushes.White;
            Paragraph1TextBox.Background = Brushes.White;
            PostScriptTextBox.Background = Brushes.White;
            EndorserTextBox.Background = Brushes.White;
            PositionTextBox.Background = Brushes.White;
            BelongToTextBox.Background = Brushes.White;
            TellTextBox.Background = Brushes.White;
            FaxTextBox.Background = Brushes.White;

            if (ReferenceTextBox.Text == "") 
            {
                stackPanel9.Visibility = Visibility.Collapsed;
            }
           
            if (ItemFileDataGrid.Items.Count != 0)
            {
                //MessageBox.Show("555555");
                stackPanel10.Visibility = Visibility.Collapsed;
                stackPanel110.Visibility = Visibility.Collapsed;
                stackPanel111.Visibility = Visibility.Visible;
                //return;
            }
            if (ItemFileDataGrid.Items.Count == 0)
            {
                //MessageBox.Show("yyyyyy");
                stackPanel10.Visibility = Visibility.Collapsed;
                stackPanel110.Visibility = Visibility.Collapsed;
                stackPanel111.Visibility = Visibility.Collapsed;
                //return;
            }


          

            PrintDialog dialog = new PrintDialog();
            //this.Close();
            if (dialog.ShowDialog() != true) return;

            grid2.Measure(new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight));
            //grid2.Arrange(new Rect(new Point(50, 50), grid2.DesiredSize));

            dialog.PrintVisual(grid2, "A WPF printing");


            
        }
    }
}
